build/Makefile.msvcproj: Add rules for MSVC 2013 to be baseline version
authorChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 26 Oct 2016 05:22:48 +0000 (13:22 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Wed, 26 Oct 2016 08:46:38 +0000 (16:46 +0800)
GTK+-3.89.0 and later will require C99 features that is only supported on
Visual Studio 2013 and later, so prepare build/Makefile.msvcproj for this.

We still keep the 2008~2010 stuff here as this strives to be a shared module,
and there are projects using this that still supports building on pre-2013
Visual Studio.

build/Makefile.msvcproj

index f127eea516fa5064a930c9fc8b25a9ebb1e88c0d..2a2dd89ab764f62f5453104017d42931ccf2e71f 100644 (file)
@@ -109,6 +109,39 @@ $(top_builddir)/build/win32/vs9/$(1).headers: Makefile
                esac;   \
        done
 
+$(top_builddir)/build/win32/vs12/$(1).vcxproj.filters: $(top_builddir)/build/win32/vs12/$(1).vcxproj
+
+$(top_builddir)/build/win32/vs12/$(1).vcxproj: Makefile
+       -$(RM) $(top_builddir)/build/win32/vs14/$(1).vcxproj
+       -$(RM) $(top_builddir)/build/win32/vs14/$(1).vcxproj.filters
+
+       for F in $(_proj_files); do \
+               case $$$$F in \
+               $(_proj_filters)) \
+                       ;; \
+               *.c|*.cpp|*.cc|*.cxx) \
+                       echo '   <ClCompile Include="..\..\..'$(_proj_subdir)$$$$F'" />' >>$(1).vs12.sourcefiles && \
+                       echo '   <ClCompile Include="..\..\..'$(_proj_subdir)$$$$F'"><Filter>Source Files</Filter></ClCompile>' >>$(1).vs12.sourcefiles.filters \
+                       ;; \
+               esac;   \
+       done
+
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs12/$(1).vcxprojin >$(top_builddir)/build/win32/vs12/$(1).vcxproj
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs12/$(1).vcxproj.filtersin >$(top_builddir)/build/win32/vs12/$(1).vcxproj.filters
+
+$(top_builddir)/build/win32/vs12/$(1).vs12.headers: Makefile
+       -$(RM) $(top_builddir)/build/win32/vs12/$(1).vs12.headers
+
+       for F in $(_proj_headers); do \
+               case $$$$F in \
+               $(_proj_headers_excludes)) \
+                       ;; \
+               *.h|*.hpp|*.hh|*.hxx) \
+                       echo 'copy ..\..\..'$(_proj_subdir)$$$$F' $$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F >>$(top_builddir)/build/win32/vs12/$(1).vs12.headers \
+                       ;; \
+               esac;   \
+       done
+
 endef
 
 $(foreach proj,$(MSVCPROJS),$(eval $(call msvcproj-builder,$(proj))))